# -*- coding: utf-8 -*-
"""
Created on 2021/6/1 15:49

@File: search_station_objectid.py
@Author: LT
@Description: 最终目的是找到目标站点的objectID，保证不能是工业园区的id，所以为了确保，得找到parentID是1859febe5ce70000
              的同一层级的objectID，因为1859febe5ce70000代表着联元的objectID号！这里先不考虑多个重名站点的返回结果，就算
              多个也只优先考虑第一个匹配的项目，当然，还得用同层级的name关键字来进行一个强联系匹配
"""
from requests import get


class SearchStationObjectID:
    def __init__(self, TARGET_NAME):
        self.link = 'https://portal-lywz1.eniot.io/configcenter/rest/hierarchy/searchnodesbyvalue'
        self.TARGET_NAME = TARGET_NAME
        self.headers = {
            "eos_auth": str({"uid": "35e35736-ce9a-4d1b-b2d5-14ea8c279353",
                             "token": "IAM_s16225092461511",
                             "orgCode": "1859febe5ce70000",                 # 这个字符串代表着带房子的图标的站点，而非工业园区
                             "userName": "shujun.wu",
                             "locale": "zh-CN"}).replace('\'', '\"')
        }
        self.params = {
            'searchvalue': self.TARGET_NAME
        }
        self.res = self.__request()

    def __request(self):
        res = get(url=self.link, headers=self.headers, params=self.params)
        res.close()
        return res

    def analyse(self):
        """分析返回体，取得对应站点的正确的objectId，其中的关键是对simpleChildNodeData的分析"""
        response = self.res.json()
        if str(response.get('retCode')) == '10000':         # 说明返回体正常
            if response.get('data'):                        # 但保险起见，还是得判断返回data参数是否为空，不为空才能进行下一步
                simpleChildNodeData = response.get('data').get('simpleChildNodeData')
                for each in simpleChildNodeData:
                    if each.get('parentID') == '1859febe5ce70000' and each.get('name') == self.TARGET_NAME:
                        return each.get('objectID')
                else:
                    # 说明啥都没有搜到
                    return False
            else:
                # 若返回体正常，但data为空也是不正常
                return False
        else:
            # 返回体返回不正常
            return False


if __name__ == '__main__':
    import pprint

    exp = SearchStationObjectID('2021-7-20需要删除_1')
    print(pprint.pformat(exp.res.json()))
    print('\n\n', exp.analyse())

    # 返回体是：
    # {'data': {'matchSearchCount': 2,
    #           'simpleChildNodeData': [{'categoryIDs': [29],
    #                                    'children': 1,
    #                                    'detailInfo': {'Y/Nsmallgarden': '否',
    #                                                   'address': '浙江省温州市永嘉县江北街道浦西工业区',
    #                                                   'businessType': '29',
    #                                                   'capacity': '',
    #                                                   'city': '温州市',
    #                                                   'county': '永嘉县',
    #                                                   'createdDate': '2020-12-08T02:30:27.828+0000',
    #                                                   'deviceAmount': '',
    #                                                   'doorname': '永嘉登达仕鞋业有限公司',
    #                                                   'doornumber': '2116940059',
    #                                                   'gatewayvender': '',
    #                                                   'groupType1': '{"groupTypeName":{"default":"groupType1","zh_CN":"groupType1"},"groupEntries":[],"activation":false}',
    #                                                   'groupType2': '{"groupTypeName":{"default":"groupType2","zh_CN":"groupType2"},"groupEntries":[],"activation":false}',
    #                                                   'groupType3': '{"groupTypeName":{"default":"groupType3","zh_CN":"groupType3"},"groupEntries":[],"activation":false}',
    #                                                   'groupType4': '{"groupTypeName":{"default":"groupType4","zh_CN":"groupType4"},"groupEntries":[],"activation":false}',
    #                                                   'groupType5': '{"groupTypeName":{"default":"groupType5","zh_CN":"groupType5"},"groupEntries":[],"activation":false}',
    #                                                   'industry': '',
    #                                                   'isAttachedSite': 'true',
    #                                                   'manager': '无',
    #                                                   'name': '永嘉登达仕鞋业有限公司',
    #                                                   'objectID': '2515d14699002000',
    #                                                   'objectTypeID': '102',
    #                                                   'parentID': '2515d14666006000',
    #                                                   'powersupplyarea': '江北街道浦西工业区',
    #                                                   'projectname': '',
    #                                                   'projectnumber': '',
    #                                                   'province': '浙江省',
    #                                                   'streettown': '瓯北街道',
    #                                                   'subsidiarysmallgarden': '',
    #                                                   'tel': '无',
    #                                                   'timeZone': '+08:00',
    #                                                   'updatedDate': '2021-04-28T06:39:45.344+0000'},
    #                                    'name': '永嘉登达仕鞋业有限公司',
    #                                    'objectID': '2515d14699002000',
    #                                    'objectTypeID': {'major': 102, 'minor': -1},
    #                                    'parentID': '2515d14666006000',
    #                                    'typeId': '102'},
    #                                   {'categoryIDs': [29],
    #                                    'children': 1,
    #                                    'detailInfo': {'address': '浙江省温州市永嘉县江北街道浦西工业区',
    #                                                   'alias': '',
    #                                                   'altitude': '',
    #                                                   'businessType': '29',
    #                                                   'city': '温州市',
    #                                                   'country': '中国',
    #                                                   'createdDate': '2020-12-08T02:30:27.726+0000',
    #                                                   'district': '永嘉',
    #                                                   'geoLocation': '',
    #                                                   'isAttachedSite': 'true',
    #                                                   'latitude': '28',
    #                                                   'longitude': '122',
    #                                                   'name': '永嘉登达仕鞋业有限公司',
    #                                                   'objectID': '2515d14666006000',
    #                                                   'objectTypeID': '58',
    #                                                   'parentID': '1859febe5ce70000',
    #                                                   'productionDate': '',
    #                                                   'responsible': '',
    #                                                   'sort': '',
    #                                                   'state': '浙江省',
    #                                                   'timezone': '+08:00',
    #                                                   'updatedDate': '2021-04-28T06:39:45.333+0000',
    #                                                   'zipCode': ''},
    #                                    'name': '永嘉登达仕鞋业有限公司',
    #                                    'objectID': '2515d14666006000',
    #                                    'objectTypeID': {'major': 58, 'minor': -1},
    #                                    'parentID': '1859febe5ce70000',
    #                                    'typeId': '58'}]},
    #  'errMsg': '',
    #  'retCode': 10000}
    #
    # 进程已结束，退出代码为
    # 0

